package com.EAsystem.service;

import com.EAsystem.entity.Course;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface CourseService {
    /**
     * 查询所有课程
     * @return 课程列表
     */
    List<Course> findAll();
    

    
    /**
     * 根据条件查询课程
     * @param course 包含查询条件的课程对象
     * @return 课程列表
     */
    List<Course> findByCondition(Course course);
    

    
    /**
     * 根据ID查询课程
     * @param id 课程ID
     * @return 课程对象
     */
    Course findById(Long id);
    
    /**
     * 保存课程信息
     * @param course 课程对象
     */
    void save(Course course);
    
    /**
     * 删除课程信息
     * @param id 课程ID
     */
    void delete(Long id);
    
    /**
     * 编辑课程信息
     * @param course 课程对象
     */
    void update(Course course);
    
    /**
     * 分页查询所有课程（返回PageInfo对象）
     * @param pageNum 页码
     * @param pageSize 每页记录数
     * @return 分页信息
     */
    PageInfo<Course> findAllByPage(int pageNum, int pageSize);
    
    /**
     * 根据条件分页查询课程（返回PageInfo对象）
     * @param course 包含查询条件的课程对象
     * @param pageNum 页码
     * @param pageSize 每页记录数
     * @return 分页信息
     */
    PageInfo<Course> findByConditionPageInfo(Course course, int pageNum, int pageSize);

    int updateStatus(Long id, Integer status);
}